package main

import "fmt"

func main() {
	/*
		数据类型
		1.基本数据类型
			布尔类型：bool
			数值类型：
				整数:int
					有符号：最高位表示符号位，0正数，1负数，其余表示数值
					int8： （-128 到 127）
					int16：（-32768 到 32767）
					int32：（-2147483648 到 2147483647）
					int64：（-9223372036854775808 到 9223372036854775807）
					无符号：所有位表示数值
					uint8： （0 到 255）
					uint16：（0 到 65535）
					uint32：（0 到 4294967295）
					uint64：（0 到 18446744073709551615）

					byte：uint8
					runt：uint32
				浮点
					单精度：float32
					双精度：float64
				复数
			字符串：string
		2.符合数据类型
			array，slice，map，function，pointer，struct，interface，channel
	*/

	//bool类型
	var b bool = true
	fmt.Printf("布尔类型:%t\n", b)

	//整数
	var num int = 1
	var num2 int64 = int64(num)
	fmt.Println(num2)

	//浮点数
	var f float64 = 1.234
	fmt.Println(f)

	/*
		字符串
		1.概念：多个byte的集合，理解为一个字符序列
		2.语法：使用双引号，也可以使用``
			"abc"
	*/
	fmt.Println(`hello world`)

	//单字节
	char := 's'
	//int32 115
	fmt.Printf("%T %d\n", char, char)

	//转义字符 "hello"
	fmt.Println("\"hello\"")
	fmt.Println(`"hello world"`)

	//类型转换
	//a := 1
	//var c = 1.23
	////invalid operation: a + c (mismatched types int and float64)
	//fmt.Println(a + c)
}
